package com.hzw.saas.api.product.dto;

import java.io.Serializable;
import java.util.Date;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 线下支付
 *
 * @author zzl
 * @since 01/27/2021
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "线下支付", description = "线下支付")
public class PaymentOfflineDto implements Serializable {

    private static final long serialVersionUID = -3828994244859933995L;

    /**
     * 支付ID
     */
    @ApiModelProperty(value = "支付ID", position = 1)
    private String payId;

    /**
     * 用户ID
     */
    @ApiModelProperty(value = "用户ID", position = 2, hidden = true)
    private String userId;

    /**
     * 订单ID
     */
    @ApiModelProperty(value = "订单ID", position = 3)
    private String orderId;

    /**
     * 订单类型，商品订单或充值订单
     */
    @ApiModelProperty(value = "订单类型，商品订单或充值订单", position = 4, hidden = true)
    private Integer orderType;

    /**
     * 支付金额
     */
    @ApiModelProperty(value = "支付金额", position = 5)
    private Double payAmount;

    /**
     * 管理员用户ID
     */
    @ApiModelProperty(value = "管理员用户ID", position = 6)
    private String adminId;

    /**
     * 管理员用户名
     */
    @ApiModelProperty(value = "管理员用户名", position = 7)
    private String adminName;

    /**
     * 审批工作流ID
     */
    @ApiModelProperty(value = "审批工作流ID", position = 8)
    private String flowId;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间", position = 9)
    private Date createTime;

    /**
     * 支付时间
     */
    @ApiModelProperty(value = "支付时间", position = 10)
    private Date payTime;

    /**
     * 支付状态
     * @see com.hzw.saas.api.product.enums.OrderStatus
     */
    @ApiModelProperty(value = "支付状态", position = 11)
    private Integer payStatus;

    /**
     * 支付状态文本
     */
    @ApiModelProperty(value = "支付状态文本", position = 12)
    private String payStatusText;
}
